package com.ruoyi.exam.domain.entity;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 个人安全教育培训档案，用于记录个人的安全教育培训信息对象 t_safety_training_record
 *
 * @author ruoyi
 * @date 2024-12-17
 */
public class SafetyTrainingRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键，培训记录ID
     */
    private Long id;

    /**
     * 培训标题
     */
    @Excel(name = "培训标题")
    private String title;

    /**
     * 人员ID，关联人员表主键
     */
    @Excel(name = "人员ID")
    private Long userId;
    /**
     * 人员ID，关联人员表主键
     */
    @Excel(name = "人员名称")
    private String userName;
    /**
     * 培训日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "培训日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date trainingTime;

    /**
     * 培训内容，记录培训的具体信息
     */
    @Excel(name = "培训内容，记录培训的具体信息")
    private String trainingContent;

    /**
     * 培训方式，例如线上、线下、实操等
     */
    @Excel(name = "培训方式，例如线上、线下、实操等")
    private Integer trainingMethod;

    /**
     * 培训层级，例如初级、中级、高级
     */
    @Excel(name = "培训层级，例如初级、中级、高级")
    private Integer trainingLevel;

    /**
     * 文件路径，用于存储培训相关附件的地址
     */
    @Excel(name = "文件路径，用于存储培训相关附件的地址")
    private String filePath;

    /**
     * 考核结果，例如合格、不合格、待考核等
     */
    @Excel(name = "考核结果，例如合格、不合格、待考核等")
    private Integer result;
    /** 专业培训、专项培训、个人培训 */
    @Excel(name = "专业培训、专项培训、个人培训")
    private Integer trainingType;
    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setTrainingTime(Date trainingTime) {
        this.trainingTime = trainingTime;
    }

    public Date getTrainingTime() {
        return trainingTime;
    }

    public void setTrainingContent(String trainingContent) {
        this.trainingContent = trainingContent;
    }

    public String getTrainingContent() {
        return trainingContent;
    }

    public void setTrainingMethod(Integer trainingMethod) {
        this.trainingMethod = trainingMethod;
    }

    public Integer getTrainingMethod() {
        return trainingMethod;
    }

    public void setTrainingLevel(Integer trainingLevel) {
        this.trainingLevel = trainingLevel;
    }

    public Integer getTrainingLevel() {
        return trainingLevel;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setResult(Integer result) {
        this.result = result;
    }

    public Integer getResult() {
        return result;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getTrainingType() {
        return trainingType;
    }

    public void setTrainingType(Integer trainingType) {
        this.trainingType = trainingType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("title", getTitle())
                .append("userId", getUserId())
                .append("trainingTime", getTrainingTime())
                .append("trainingContent", getTrainingContent())
                .append("trainingMethod", getTrainingMethod())
                .append("trainingLevel", getTrainingLevel())
                .append("filePath", getFilePath())
                .append("result", getResult())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("userName", getUserName())
                .append("trainingType", getTrainingType())
                .toString();
    }
}
